#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSystemTrayIcon>
#include <QDir>
#include <QMessageBox>
#include <QDebug>
#include <QDateTime>
#include <QStringList>
#include <QProcess>
#include <QTimer>
#include <QTime>
#include <QMenu>

#include "windows.h"
#include <psapi.h>
#include "tlhelp32.h"

class MainWindow;


class MainWindow : public QMainWindow
{
    Q_OBJECT

#ifndef _SLANL_VERSION
#define _SLANL_PSDAUTOSAVE_VERSION 0.1
#define SL_VER _SLANL_PSDAUTOSAVE_VERSION
#endif

#define SL_QUERY_TIME           1000*60*2      //2分钟（查询时间）
#define SL_SAVE_TIME            (60*5)         //备份时间（5分钟）
#define SL_REMID_TIME           (60*40)        //提醒时间（40分钟）
#define SL_BACKUP_NUM           20             //最大备份个数


public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    void createTrayWdiget();
    void createTrayActions();
    void getProcessId();
    void clearDirFile(QString &);
    bool removeDirectory(QString dirName);


    void setAutoRecoverPath();
    bool copyDirectoryFiles(const QString &, const QString &);
    void aboutPsAutoSave();

signals:
    void foregroundWindowisPs();

private:



    QTimer *timer;  //定时器

    QTime backupTime;   //计算备份时间
    QTime messageTime;  //计算消息发送时间
    bool  openPsFalg;   //检测到打开ps置1
    bool  noPsFalg;     //检测到当前进程不是ps置1
    int   messageNum;

    QAction * actionShow;
    QAction * actionQuit;
    QAction * actionHelp;
    QAction * actionAbout;
    QAction * actionSetting;

    QMenu *trayiconMenu;

    QSystemTrayIcon *systemTray;
    QVector<QString> autoRecoverDirPath;


public slots:
    void backupPSDFile();



};

#endif // MAINWINDOW_H
